// pages/index/index.js
// 引入SDK核心类，js文件根据自己业务，位置可自行放置
var QQMapWX = require('../../libs/qqmap-wx-jssdk.min.js');
var qqmapsdk;
// 用户采用新的userrule的时间间隔。设定为15天
var UESR_RULE_INVALID_TIME = 1296000000;

Page({

  /**
   *
   * 页面的初始数据
   */
  data: {
    isShowBack: false,
    isShowHome: false,
    title: '楼盘模拟.列表',
    titleColor: '#ffffff',
    background: 'linear-gradient(135deg, #ff705d 0%, #d81e06 100%)',

    toView: 'green',

    longitude: 116.4965075,
    latitude: 40.006103,
    speed: 0,
    accuracy: 0,

    // ads: [{
    //   imageUrl: "https://xuanfangyi.com/img/wx/house.png",
    //   name: "广告招租",
    //   line1: " 可针对区域投放",
    //   line2: "根据效果收费",
    //   line3: "13141303804",
    //   guid:"ad1"
    // }],
    ads: [],
    districts: [],

    region: ['广东省', '广州市', '海珠区'],
    customItem: '全部',

    // letusmodeling:{guid: "letusmodeling"}
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    var that = this

    // 初始化 省市区
    // 实例化API核心类
    qqmapsdk = new QQMapWX({
      key: 'V4LBZ-4WCKU-U7BVY-4RVJG-EZHY3-ZXBS7'
    });

    wx.showLoading({
      title: "定位中",
      mask: true
    })

    let app = getApp()
    // 原来是 getLocation ，腾讯要求改为 getFuzzyLocation ，app.json里面也要做相应的修改。
    // getFuzzyLocation 方法需要后台设置 > 基本设置 > 版本设置 > 基础库最低可用版本 > 2.25.0 ，影响2%的用户。 
    wx.getFuzzyLocation({
      type: 'gcj02',
      // altitude: true, //高精度定位2021-1-7
      //定位成功，更新定位结果
      success: function (res) {
        let latitude = res.latitude
        let longitude = res.longitude
        // let speed = res.speed
        // let accuracy = res.accuracy

        that.setData({
          longitude: longitude,
          latitude: latitude
        })

        // 设置经纬度有多个来源
        // 更新经纬度的时间。
        app.globalData.locUpdateSource = "getlocation"
        app.globalData.locUpdateTime = Date.now()
        app.globalData.longitude = longitude
        app.globalData.latitude = latitude

        // 现在调用两个方法，分别设置
        that.updateContent(longitude, latitude)
        // 设置用户选择地点的picker
        that.getProvinceCityDisByLngLatSetLocationPicker(longitude, latitude)
      }, // wx.getLocation -- success: function (res)

      //定位失败回调
      fail: function () {

        wx.showToast({
          title: "定位失败",
          icon: 'error',
          duration: 1500
        })

        app.globalData.locUpdateSource = "failed"
        app.globalData.locUpdateTime = Date.now()
        app.globalData.longitude = 114
        app.globalData.latitude = 39

      }, // wx.getLocation -- fail: function (res)

      complete: function () {
        //隐藏定位中信息进度
        //wx.hideToast()
      } // wx.getLocation -- complete: function (res)

    })



  }, // onLoad

  /**
   * 生命周期函数--监听页面初次渲染完成
   */

  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  // onShareAppMessage: function () {
  //   return {
  //     title: "看一年每天的楼盘阳光",
  //     success() {
  //       console.log("success");
  //     },
  //     fail() {
  //       console.log("error");
  //     }
  //   }
  // },

  handleSearch: function (event) {
    console.log("searched")
    console.log(event.detail)

    // https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.navigateTo.html
    wx.navigateTo({
      url: '../search/search?searchStr=' + event.detail,
    });

  },

  upper(e) {
    console.log(e)
  },

  lower(e) {
    console.log(e)
  },

  scroll(e) {
    console.log(e)
  },

  scrollToTop() {
    this.setAction({
      scrollTop: 0
    })
  },

  tap() {
    for (let i = 0; i < order.length; ++i) {
      if (order[i] === this.data.toView) {
        this.setData({
          toView: order[i + 1],
          scrollTop: (i + 1) * 200
        })
        break
      }
    }
  },

  tapMove() {
    this.setData({
      scrollTop: this.data.scrollTop + 10
    })
  },

  // 分享按钮
  // <button open-type='share'>分享</button>

  shareIndex() {
    console.log("点击分享按钮")

  },

  // 自定义的数据
  // onShareAppMessage: function (res) {
  //   if (res.from === 'button') {
  //     // 来自页面内转发按钮
  //     console.log(res.target)
  //   }
  //   return {
  //     title: '自定义转发标题',
  //     path: '/page/user?id=123',
  //     desc: '自定义描述',
  //     imageUrl: '/img/share.png'
  //   }
  // },

  // 转到地图tab，注意，wx.switchTab不能带参数，只能把数据放到正确的地方。https://blog.csdn.net/weixin_42220039/article/details/109338513
  // switchTabMap() {
  //   wx.switchTab({
  //     url: '../map/map'
  //   })
  // },

  // tapItem(e) {
  //   var item = e.currentTarget.dataset.para
  //   // console.log(item)
  //   var app = getApp();

  //   app.globalData.guidBase36 = item.guidbase36
  //   // console.log(item)
  //   // console.log(item.guidbase36)
  //   // console.log(app.globalData.guidBase36)

  //   // wx.switchTab({
  //   //   url: '../scene/scene'
  //   // })

  //   // console.log('---navite---')

  //   wx.navigateTo({
  //     url: "../../pages/scene/scene",
  //   });

  // },

  // 点击广告
  adTapItem(e) {
    var item = e.currentTarget.dataset.para
    wx.navigateTo({
      url: "/pages/details/details?guid=" + item.guid
    })
  },

  //单项的点击事件
  gotoDetail: function (event) {
    var that = this;
    let guid = event.currentTarget.dataset.para;
    wx.navigateTo({
      url: "/pages/details/details?guid=" + guid
    })
  },

  // 界面上的地区选择器，bind的方法
  bindRegionChange: function (e) {
    var that = this
    var app = getApp();

    let regionArr = e.detail.value

    this.setData({
      region: regionArr
    })

    // 由于数据可能存在"全部"
    let addressStr = ""
    if (regionArr[0] == "全部") {
      return
    } else {
      addressStr += regionArr[0]
    }
    if (regionArr[1] != "全部") {
      addressStr += " "
      addressStr += regionArr[1]
    }
    if (regionArr[2] != "全部") {
      addressStr += " "
      addressStr += regionArr[2]
    }

    console.log("addressStr = " + addressStr)
    qqmapsdk.geocoder({
      //获取表单传入地址
      address: addressStr, //地址参数，例：固定地址，address: '北京市海淀区彩和坊路海淀西大街74号'
      success: function (res) { //成功后的回调
        let longitude = res.result.location.lng
        let latitude = res.result.location.lat
        that.setData({
          longitude: longitude,
          latitude: latitude
        })

        // 设置经纬度有多个来源
        // 更新经纬度的时间。
        app.globalData.locUpdateSource = "picker"
        app.globalData.locUpdateTime = Date.now()
        app.globalData.longitude = longitude
        app.globalData.latitude = latitude
        that.updateContent(longitude, latitude)


      },
      fail: function (error) {
        console.log("lng lat error");
        console.error(error);
      },
      complete: function (res) {
        console.log(res);
      }
    })

    // # wxuserrule方法删除，由于进入微信小程序，往往是scene，不经过index，且要不要电话号码放在wxjson里面，可以减少一次网络交互加快速度
    // 在这里设置userrule
    // that.getWxUserRule()

  }, // bindRegionChange: function (e) {

  // 写一个方法，设置当前的用户的地点数据。
  getProvinceCityDisByLngLatSetLocationPicker: function (longitude, latitude) {
    var that = this
    qqmapsdk.reverseGeocoder({
      location: latitude + "," + longitude,
      success: function (res) { //成功后的回调
        // console.log(res.result.address_component);
        let add_com = res.result.address_component
        that.setData({
          region: [add_com.province, add_com.city, add_com.district]
        })

        // 异步，要放在在这里设置userrule，确保先执行玩外围的getProvinceCityDisByLngLatSetLocationPicker方法
        // wxuserrule方法删除，由于进入微信小程序，往往是scene，不经过index，且要不要电话号码放在wxjson里面，可以减少一次网络交互加快速度
        // that.getWxUserRule()

      },
      fail: function (error) {
        console.error(error);
      },
      complete: function (res) {
        // console.log(res);
      }
    });
  },

  updateContent: function (longitude, latitude) {
    // 从服务器获得 广告list 和 list的算法
    // get 'wxlistjson/:lng/:lat/:swLng/:swLat/:neLng/:neLat'
    var that = this
    let swLng = longitude - 0.2
    let swLat = latitude - 0.2
    let neLng = longitude + 0.2
    let neLat = latitude + 0.2

    let wxlistjsonurl = 'https://xuanfangyi.com/wxlistjson/' + longitude + "/" + latitude + "/" + swLng + "/" + swLat + "/" + neLng + "/" + neLat
    // console.log(wxlistjsonurl)
    // let wxlistjsonurl = "https://xuanfangyi.com/wxlistjson/116.4/39.8/115/38/117/40"

    wx.request({
      // 'https://xuanfangyi.com/wxlistjson/' + longitude + "/" + latitude + "/" + swLng + "/" + swLat + "/" + neLng + "/" + neLat
      url: wxlistjsonurl,
      method: 'get',
      header: {
        'content-type': 'application/json'
      },
      success: function (res) {
        let jsonObj = res.data;
        //console.log(res.data)
        that.setData({
          ads: jsonObj.ads,
          districts: jsonObj.districts
        })
      },

      fail: function () {
        wx.showToast({
          title: '服务器异常',
          icon: 'error',
          duration: 1500
        })
      },
      complete: function () {
        wx.hideLoading()
      }
    }) // wx.request
  },

  // 转去页面，查看服务条款
  gotoNodealer: function () {
    wx.navigateTo({
      url: '../nodealer/nodealer'
    })
  },

  // 转去页面，提交需求
  gotoIBuy: function () {
    wx.navigateTo({
      url: '../ibuy/ibuy'
    })
  },

  // 转去页面，发布房源
  gotoISell: function () {
    wx.navigateTo({
      url: '../isell/isell'
    })
  },

  // 转去页面，拍照生成装修图
  gotoAIInterior: function () {
    wx.switchTab({
      url: "../interior_idx/interior_idx"
    })
  },

  // 转去tab页面，算日照
  gotoSunshine: function () {
    wx.switchTab({
      url: '../scene_idx/scene_idx'
    })
  },


  // 所有方法，都结束了。
})